package com.hd.service.activiti;

import java.io.Serializable;
import java.util.List;

import com.hd.entity.activiti.ElementDef;
import com.hd.entity.activiti.UserTask;

public interface UserTaskService {
	 /**
	  * 保存
	  * @param userTask
	  * @return
	  */
	 Serializable save(UserTask userTask);
	 
	 /**
	  * 更新
	  * @param userTask
	  */
     void update(UserTask userTask) ;

     /**
      * 刪除
      * @param userTask
      */
     void delete(UserTask userTask) ;
     
     /**
      * 清空表
      */
     void deleteAll() ;
     
     /**
      * 通过id查询任务
      * @param id
      * @return
      */
     UserTask findById(String id) ;
     
     /**
      * 通过流程定义KEY查询
      * @param procDefKey
      * @return
      */
     List<UserTask> findByWhere(String procDefId) ;

     /**
      * 查询所有
      * @return
      */
     List<UserTask> getAll() ;
     
     /**
      * 初始化任务节点
      */
     void initTaskNode();
     
     /**
      * 初始化单个任务节点
      * @param processDefinitionId
      */
     void loadSingleBpmn(String processDefinitionId);
     
     UserTask getUserTaskByParams(String procDefId, String taskDefKey);
     
     /**
      * 回退节点
      * @param processInstanceId
      * @return
      */
     List<ElementDef>getFallBackElements(String processInstanceId);
     /**
      * 前进节点
      * @param processInstanceId
      * @return
      */
     List<ElementDef>getForwardElements(String processInstanceId);
     
     
}
